<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <title>01_let关键字</title>
</head>
<body>
<button>测试1</button>
<br>
<button>测试2</button>
<br>
<button>测试3</button>
<br>
<!--
1. 作用:
  * 与 var 类似, 用于声明一个变量
2. 特点:
  * 在块作用域内有效
  * 不能重复声明
  * 不会预处理, 不存在变量提升
  * 不影响作用域链
3. 应用:
  * 循环遍历加监听
  * 使用 let 取代 var 是趋势
-->
<script type="text/javascript">
  // console.log(age); // age is not defined
  let age = 12;
  // let age = 13;不能重复声明
  console.log(age);

  let btns = document.getElementsByTagName('button');
  for (let i = 0; i < btns.length; i++) {
    btns[i].onclick = function () {
      alert(i);
    }

    // 闭包
    /*var btn = btns[i];
    (function (i) {
        btn.onclick = function () {
            alert(i);
        }
    })(i)*/
  }
</script>
</body>
</html>
